package com.zyh.appointment.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zyh.appointment.domain.Appointment;
import com.zyh.appointment.domain.AppointmentVo;
import com.zyh.common.core.domain.AjaxResult;

/**
 * 咨询预约Service接口
 *
 * @author zhangyangheng
 * @date 2025-03-19
 */
public interface IAppointmentService extends IService<Appointment> {
    /**
     * 查询咨询预约
     *
     * @param appointmentId 咨询预约主键
     * @return 咨询预约
     */
    public Appointment selectAppointmentByAppointmentId(Long appointmentId);

    /**
     * 查询咨询预约列表
     *
     * @param appointment 咨询预约
     * @return 咨询预约集合
     */
    public List<Appointment> selectAppointmentList(Appointment appointment);

    /**
     * 新增咨询预约
     *
     * @param appointment 咨询预约
     * @return 结果
     */
    public int insertAppointment(Appointment appointment);

    /**
     * 修改咨询预约
     *
     * @param appointment 咨询预约
     * @return 结果
     */
    public int updateAppointment(Appointment appointment);

    /**
     * 批量删除咨询预约
     *
     * @param appointmentIds 需要删除的咨询预约主键集合
     * @return 结果
     */
    public int deleteAppointmentByAppointmentIds(Long[] appointmentIds);

    /**
     * 删除咨询预约信息
     *
     * @param appointmentId 咨询预约主键
     * @return 结果
     */
    public int deleteAppointmentByAppointmentId(Long appointmentId);

    /**
     * 获取咨询预约信息
     * @param appointmentId
     * @return
     */
    AppointmentVo getInfo(Long appointmentId);

    /**
     * 处理预约申请
     * @param appointment
     * @return
     */
    AjaxResult handleApprove(Appointment appointment);

    AjaxResult booking(Appointment appointment);
}
